package cn.com.surker.oa.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 生产合同(运输、泵送)
 * </p>
 *
 * @author admin
 * @since 2022-10-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class OaProductionContract implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 合同编号
     */
    private String code;

    /**
     * 合同类型(0:罐车运输1:泵送)
     */
    private Integer type;

    /**
     * 公司ID
     */
    private Long orgId;

    /**
     * 公司名称
     */
    private String orgName;

    /**
     * 性质(0;正式,1:临时)
     */
    private Integer quality;

    /**
     * 联系人
     */
    private String linkMan;

    /**
     * 联系电话
     */
    private String phone;
    /**
     * 是否含税(0:不含税1:含税)
     */
    private Integer isTaxPrice;
    /**
     * 含税率(%)
     */
    private Double rate;
    /**
     * 合同名称
     */
    private String name;

    /**
     * 开始日期
     */
    private String startDate;

    /**
     * 结束日期
     */
    private String endDate;

    /**
     * 合同内容
     */
    private String content;

    /**
     * 保证金
     */
    private Double ensureMoney;

    /**
     * 签订日期
     */
    private String signDate;

    /**
     * 供应公司id
     */
    private Long sid;

    /**
     * 状态(0:启用1:禁用)
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    private String creator;

    private String updator;

    /**
     * 车队代号
     */
    private String fleetCode;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    public OaProductionContract(){}

    public OaProductionContract(String code, Integer type, Long orgId, String orgName, Integer quality, String linkMan,
                                String phone, String name, String startDate, String endDate, String signDate, Long sid,
                                Integer status, String remark, Date createTime) {
        this.code = code;
        this.type = type;
        this.orgId = orgId;
        this.orgName = orgName;
        this.quality = quality;
        this.linkMan = linkMan;
        this.phone = phone;
        this.name = name;
        this.startDate = startDate;
        this.endDate = endDate;
        this.signDate = signDate;
        this.sid = sid;
        this.status = status;
        this.remark = remark;
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return "OaProductionContract{" +
                "id=" + id +
                ", code='" + code + '\'' +
                ", type=" + type +
                ", orgId=" + orgId +
                ", orgName='" + orgName + '\'' +
                ", quality=" + quality +
                ", linkMan='" + linkMan + '\'' +
                ", phone='" + phone + '\'' +
                ", isTaxPrice=" + isTaxPrice +
                ", rate=" + rate +
                ", name='" + name + '\'' +
                ", startDate='" + startDate + '\'' +
                ", endDate='" + endDate + '\'' +
                ", content='" + content + '\'' +
                ", ensureMoney=" + ensureMoney +
                ", signDate='" + signDate + '\'' +
                ", sid=" + sid +
                ", status=" + status +
                ", remark='" + remark + '\'' +
                ", creator='" + creator + '\'' +
                ", updator='" + updator + '\'' +
                ", fleetCode='" + fleetCode + '\'' +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                '}';
    }
}
